7---CHECK

alter table suscriptor_tab add constraint ck_estado_suscriptor_tab check (estado='TABASCO')
alter table suscriptor_tlax add constraint ck_estado_suscriptor_tlax check (estado='TLAXCALA')


create procedure inserta_en_suscriptor_tam(
	@suscriptor_id 		numeric(10),
	@nombre 			varchar(50),
	@apellidos 			varchar(50),
	@telefono 			numeric(12),
	@domicilio 			varchar(50),
	@estado 			varchar(50)
) as 
insert into suscriptor_tam(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(@suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado);

create procedure inserta_en_suscriptor_tlax(
	@suscriptor_id 		numeric(10),
	@nombre 			varchar(50),
	@apellidos 			varchar(50),
	@telefono 			numeric(12),
	@domicilio 			varchar(50),
	@estado 			varchar(50)
) as 
insert into suscriptor_tlax(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(@suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado);

create procedure inserta_en_suscripcion_tab(
	@folio 			numeric(10),
	@suscriptor_id 		numeric(10),
	@publicacion_id 	numeric(10),
	@fecha_inicio 		date,
	@duracion 		numeric(5)
) as 
insert into suscripcion_tab(folio,suscriptor_id,publicacion_id,fecha_inicio,duracion)
values(@folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion);

create procedure inserta_en_suscripcion_tlax(
	@folio 			numeric(10),
	@suscriptor_id 		numeric(10),
	@publicacion_id 	numeric(10),
	@fecha_inicio 		date,
	@duracion 		numeric(5)
) as 
insert into suscripcion_tlax(folio,suscriptor_id,publicacion_id,fecha_inicio,duracion)
values(@folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion);



------External Procedure

create existing table inserta_en_suscriptor_df(
	suscriptor_id 		numeric(10),
	nombre 			varchar(50),
	apellidos 			varchar(50),
	telefono 			numeric(12),
	domicilio 			varchar(50),
	estado 			varchar(50)
) as 
external procedure at "BRAHM.suscripciones_bdd.dbo.inserta_en_suscriptor_df"

create existing table inserta_en_suscriptor_son(
	suscriptor_id 		numeric(10),
	nombre 			varchar(50),
	apellidos 			varchar(50),
	telefono 			numeric(12),
	domicilio 			varchar(50),
	estado 			varchar(50)
) as 
external procedure at "BRAHM.suscripciones_bdd.dbo.inserta_en_suscriptor_son"

create existing table inserta_en_suscriptor_tam(
	suscriptor_id 		numeric(10),
	nombre 			varchar(50),
	apellidos 			varchar(50),
	telefono 			numeric(12),
	domicilio 			varchar(50),
	estado 			varchar(50)
) as 
external procedure at "BRAHM.suscripciones_bdd.dbo.inserta_en_suscriptor_tam"

 



create existing table inserta_en_suscripcion_df(
	folio 			numeric(10),
	suscriptor_id 		numeric(10),
	publicacion_id 	numeric(10),
	fecha_inicio 		date,
	duracion 		numeric(5)
) as 
external procedure at "BRAHM.suscripciones_bdd.dbo.inserta_en_suscripcion_df"

create existing table inserta_en_suscripcion_son(
	folio 			numeric(10),
	suscriptor_id 		numeric(10),
	publicacion_id 	numeric(10),
	fecha_inicio 		date,
	duracion 		numeric(5)
) as 
external procedure at "BRAHM.suscripciones_bdd.dbo.inserta_en_suscripcion_son"

create existing table inserta_en_suscripcion_tam(
	folio 			numeric(10),
	suscriptor_id 		numeric(10),
	publicacion_id 	numeric(10),
	fecha_inicio 		date,
	duracion 		numeric(5)
) as 
external procedure at "BRAHM.suscripciones_bdd.dbo.inserta_en_suscripcion_tam"



create procedure borrar_de_suscriptor_tab(
	@suscriptor_id 		numeric(10)
) as 
delete from suscriptor_tab where suscriptor_id=@suscriptor_id;

create procedure borrar_de_suscriptor_tlax(
	@suscriptor_id 		numeric(10)
) as 
delete from suscriptor_tlax where suscriptor_id=@suscriptor_id;



-- triggers
create trigger  trgr_suscriptor on SUSCRIPTOR
instead of insert as
	declare	@suscriptor_id 		numeric(10)
	declare	@nombre 			varchar(50)
	declare	@apellidos 			varchar(50)
	declare	@telefono 			numeric(12)
	declare	@domicilio 			varchar(50)
	declare	@estado 			varchar(50)
begin
	select 	@suscriptor_id=suscriptor_id,
			@nombre=nombre,
			@apellidos=apellidos,
			@telefono=telefono,
			@domicilio=domicilio,
			@estado=estado
	from inserted
	if upper(@estado)='DF'
		exec inserta_en_suscriptor_df @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='SONORA'
		exec inserta_en_suscriptor_son @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='TAMAULIPAS'
		exec inserta_en_suscriptor_tam @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='TABASCO'
		exec inserta_en_suscriptor_tab @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='TLAXCALA'
		exec inserta_en_suscriptor_tlax @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
end


create trigger  trgr_suscripcion on suscripcion
instead of insert as
	declare	@folio 				numeric(10)
	declare @suscriptor_id 		numeric(10)
	declare @publicacion_id 	numeric(10)
	declare @fecha_inicio 		date
	declare @duracion 			numeric(5)
	declare @estado			varchar(50)
begin
	select 	@folio=folio,
			@suscriptor_id=suscriptor_id,
			@publicacion_id=publicacion_id,
			@fecha_inicio=fecha_inicio,
			@duracion=duracion
	from inserted

	select @estado=estado
	from SUSCRIPTOR
	where suscriptor_id=@suscriptor_id

	if upper(@estado)='DF'
		exec inserta_en_suscripcion_df @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='SONORA'
		exec inserta_en_suscripcion_son @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='TAMAULIPAS'
		exec inserta_en_suscripcion_tam @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='TABASCO'
		exec inserta_en_suscripcion_tab @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='TLAXCALA'
		exec inserta_en_suscripcion_tlax @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	
end


